<%@page import="untiring07.j2ee.basic.projectv10.model.ZipcodeVO"%>
<%@page import="java.util.List"%>
<%@page import="mybatis3.helper.MySqlSessionFactory"%>
<%@page import="org.apache.ibatis.session.SqlSession"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>마이바티스 MyBatis3</title>
</head>
<body>
<h1>마이바티스 MyBatis3</h1>
<h3>개요</h3>
<p>국내에서 많이 사용하는 영속성persistance 계층 프레임워크</p>
<p>JDBC 사용시 규칙적으로 반복되는 SQL 코드의 대부분을
프레임워크 자체에서 내부적으로 처리해 줌</p>
<p>따라서, SQL 코드 작성이 많이 간소화되어, 개발자는
단지 SQL 질의문 작성에 집중하면 됨</p>
<p>즉, JDBC 작업의 상당부분을 프레임워크에서
자동으로 처리해주기 때문에 배우기도 쉬어서
SI 업계에서 한동안 인기가 많았었음</p>
<p>SQL 매핑을 이용해서 JDBC 처리를 구현</p>
<p>즉, 코드 실행시 이것과 관련있는 sql 코드를
서로 연관지어 그에 적합한 객체모델을 생성해 줌</p>
<p>원래이름은 apache iBatis 였는데, 2010.05.21부로
구글코드로 이전하면서 이름이 myBatis로 변경</p>

<h3>영속성 계층 및 영속성 프레임워크</h3>
<p>컴퓨터에서 영속성이라 하면 객체가 얼마나 
오래 유지될 수 있는지를 나타내는 성질을 의미</p>

<p>메모리에 저장된 객체는 컴퓨터의 전원이 꺼지면
사라짐 - 영속성이 보장되지 않음</p>
<p>전원이 꺼지더라도 객체가 유지(영속)되게 하려면
파일에 저장하거나, 데이터베이스에 저장해야 하는데,
이러한 작업을 영속화라고 하고 이러한 작업을 위한
코드가 실행되는 계층을 영속화 계층이라 함</p>

<p>일반적으로 Java Persistance API (JPA)라고 하면
영속화를 위해 관계형 데이터베이스에 접근하기 위한 
표준 ORM 기술을 가리킴</p>
<p>즉, 자바 클래스와 관계형 데이터베이스의 테이블을
매핑시켜 데이터베이스의 데이터를 다루는 기술을 말함</p>
<p>대표적인 JPA 구현체는 하이버네이트임</p>
<p></p>
<p></p>

<h3>myBatis 설치</h3>
<p>http://code.google.com/p/mybatis</p>
<p>mybatis-3.2.3 (2014. 01. 11 기준)</p>

<p>mybatis-3.2.3.jar (핵심)</p>
<p>lib/slf4j-api-1.7.5.jar (로그확인)</p>
<p>lib/slf4j-log4j12-1.7.5.jar (로그확인)</p>
<p>lib/log4j-1.2.17.jar (로그확인)</p>

<h3>myBatis3 환경설정 순서</h3>
<p>mybatis.github.io/mybatis-3/ko/index.html</p>
<p>log4j.properties : 마이바티스 로깅용 설정파일</p>
<p>jdbc.properties : JDBC 접속정보가 저장된 설정파일</p>
<p>mybatis-config.xml : 마이바티스 설정파일</p>
<p>mybatis3.mapper.*****.xml : SQL 매핑 설정파일 </p>
<p>mybatis3.helper.MySqlSessionFactory : 
			마이바티스 초기화 자바 클래스 파일</p>
<p></p>
<p></p>

<hr />
<%
	SqlSession ss = MySqlSessionFactory.openSession();
		try {
	List<ZipcodeVO> z = ss.selectList("ZipcodeMapper.listZipcode");
	for( ZipcodeVO v : z) {
		out.print( v.getZipcode() );
	}
		} finally {
	ss.close();
		}
%>



</body>
</html>